import request from "@/utils/request";
import type {
  GetSpuListApiParams,
  GetSpuListApiResponse,
  BaseSaleAttrList,
  SpuItem,
  SpuImageList,
  SpuSaleAttrList,
} from "./model/spuModel";

enum Api {
  getSpuList = "/admin/product",
  getBaseSaleAttrList = "/admin/product/baseSaleAttrList",
  saveSpu = "/admin/product/saveSpuInfo",
  updateSpu = "/admin/product/updateSpuInfo",
  getSpuImageList = "/admin/product/spuImageList",
  getSpuSaleAttrList = "/admin/product/spuSaleAttrList",
}

// 获取Spu列表
export const getSpuListApi = ({
  page,
  limit,
  category3Id,
}: GetSpuListApiParams) => {
  // page和 limit是path参数，位于地址栏
  return request.get<any, GetSpuListApiResponse>(
    `${Api.getSpuList}/${page}/${limit}`,
    {
      params: {
        category3Id, // query参数，查询字符串
      },
    }
  );
};

// 获取基础销售属性列表
export const getBaseSaleAttrListApi = () => {
  return request.get<any, BaseSaleAttrList>(Api.getBaseSaleAttrList);
};

// 添加Spu
export const saveSpuApi = (data: SpuItem) => {
  return request.post<any, null>(Api.saveSpu, data);
};

// 更新Spu
export const updateSpuApi = (data: SpuItem) => {
  return request.post<any, null>(Api.updateSpu, data);
};

// 获取图片列表
export const getSpuImageListApi = (id: number) => {
  return request.get<any, SpuImageList>(`${Api.getSpuImageList}/${id}`);
};

// 获取销售属性列表
export const getSpuSaleAttrListApi = (id: number) => {
  return request.get<any, SpuSaleAttrList>(`${Api.getSpuSaleAttrList}/${id}`);
};
